/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.sgsmcan.Controlador;

import com.sgsmcan.Dao.AlarmaDao;
import com.sgsmcan.Dao.AlarmaDaoImpl;
import com.sgsmcan.Entidad.Alarma;
import com.sgsmcan.Utils.Paginacion;
import com.sgsmcan.Utils.Utilitario;
import java.io.Serializable;
import javax.faces.application.NavigationHandler;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.primefaces.model.LazyDataModel;

/**
 *
 * @author user
 */
@ManagedBean(name = "alarmaBean")
@ViewScoped
public class AlarmaControlador implements Serializable{
    
    private AlarmaDao daoAlarma;
    private Alarma alarma;
    private LazyDataModel<Alarma> alarmas;
    @ManagedProperty("#{usuarioBean}")
    private UsuarioControlador usuarioSesion;
    
    public AlarmaControlador() {
        daoAlarma = new AlarmaDaoImpl();
    }
    
    public void initLista() {
        if (!FacesContext.getCurrentInstance().isPostback()) {
            usuarioSesion.generarModulo(8);
            alarmas = new Paginacion<Alarma>(daoAlarma.getAlarmas());
        }
    }
    
    public void initUpdate(){
        if (!FacesContext.getCurrentInstance().isPostback()) {
            Object parametro = FacesContext.getCurrentInstance().getExternalContext().getFlash().get("idAlarma");
            if (parametro == null) {
                FacesContext fc = FacesContext.getCurrentInstance();
                NavigationHandler nh = fc.getApplication().getNavigationHandler();
                nh.handleNavigation(fc, null, "/views/alarma/list.xhtml?faces-redirect=true");
                return;
            }
            Integer id = (Integer)parametro;
            alarma = (Alarma) daoAlarma.getAlarma(id);
        }
    }
    
    public void actualizarAlarma(ActionEvent evnt){
        try{
            daoAlarma.actualizar(alarma);
            Utilitario.enviarMensajeGlobalValido("Se ha actualizado correctamente");
        }catch(Exception e){
            Utilitario.enviarMensajeGlobalError("Error en el sistema");
            e.printStackTrace();
        }
    }
    
    public String irActualizar(Integer idAlarma){
        Utilitario.putFlash("idAlarma",idAlarma);
        return "update.xhtml?faces-redirect=true";
    }
    
    /*GETTER AND SETTER*/
    public Alarma getAlarma() {
        return alarma;
    }

    public void setAlarma(Alarma alarma) {
        this.alarma = alarma;
    }

    public LazyDataModel<Alarma> getAlarmas() {
        return alarmas;
    }

    public void setAlarmas(LazyDataModel<Alarma> alarmas) {
        this.alarmas = alarmas;
    }

    public void setUsuarioSesion(UsuarioControlador usuarioSesion) {
        this.usuarioSesion = usuarioSesion;
    }
    
}
